<%@page import="com.tledu.zyf.model.Group"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!-- 加上下面这句话,才可以使用JSTL中的核心标签库 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h4>c:out 向页面直接输出</h4>
	<c:out value="123" />
	<br>
	<c:out value="${hello }" />
	<br>${hello }
	<br>使用el找一个没有的 : ${asd }
	<br>使用c:out 找一个没有的 :
	<c:out value="${asd }" />
	<br>
	<!-- 设置默认值 有两种方式 : 1 使用default属性 2 在开始和结束标签内 -->
	使用 c:out 找一个没有的,并且设置默认值(default) :
	<c:out value="${sad }" default="数据飞走了!!" />
	<br>使用 c:out 找一个没有的,设置默认值 :
	<c:out value="${asd }">123</c:out>
	<br>


	<hr>
	<!-- 使用EL表达式 会解析字符串中的 html 标签 -->
	使用 EL 获取含有 html标签的字符串 : ${welcome }
	<br> 使用 c:out 获取含有 html 标签的字符串
	<c:out value="${welcome }" />
	<br>
	<!-- escapeXml : 设置是否逃脱XML 解析,默认是 true -->
	可以通过 escapeXML 来设置 :
	<c:out value="${welcome }" escapeXml="false" />

	<h4>c:set和 c:remove</h4>
	<!-- 相当于 session.setAttribute("userId","root"); -->
	<c:set value="root" var="userId" scope="session" />
	userId : ${userId }
	<br>
	<c:remove var="userId" />
	<!-- 删除 相当于 removeAttribute -->
	userId : ${userId }

	<h4>条件判断 if</h4>
	<!-- gt 大于 lt 小于 eq等于 -->
	<c:if test="${v1 lt v2 }">
		v1 小于 v2
	</c:if>

	<!-- 判断为空 -->
	<c:if test="${empty v1 }"></c:if>
	<!-- 相当于 switch,或者是相当于 if 多分支 都可以,因为 if和switch 差不多 -->
	<h4>c:choose,c:when,c:otherwise</h4>
	<c:choose>
		<%-- 相当于case --%>
		<c:when test="${v1 > v2 }">
			v1 大于 v2
		</c:when>
		<%-- 相当于 case --%>
		<c:when test="${v1 eq v2 }">
			
			v1 等于 v2
 		</c:when>
		<%-- 相当于 default --%>
		<c:otherwise>
 			v1 小于 v2
 		</c:otherwise>
	</c:choose>

	<h4>forEach 循环遍历</h4>
	jsp写法 :
	<br>

	<table border="1">
		<tr>
			<th>编号</th>
			<th>姓名</th>
			<th>年龄</th>
		</tr>
		<%
			List<Group> groups = (List<Group>) request.getAttribute("groups");
			if (groups == null || groups.size() == 0) {
		%>
		<tr>
			<td colspan="3">没有符合条件的数据</td>
		</tr>
		<%
			} else {
				for (Group group : groups) {
		%>
		<tr>
			<td><%=group.getId()%></td>
			<td><%=group.getName()%></td>
			<td><%=group.getAge()%></td>
		</tr>
		<%
			}
			}
		%>
	</table>

	jstl写法 :
	<br>

	<table border="1">
		<tr>
			<th>编号</th>
			<th>姓名</th>
			<th>年龄</th>
		</tr>
		<c:choose>
			<c:when test="${empty groups }">
				<tr>
					<td colspan="3">没有符合条件的数据</td>
				</tr>
			</c:when>
			<c:otherwise>
				<c:forEach items="${groups }" var="group">
					<tr>
						<td>${group.id }</td>
						<td>${group.name }</td>
						<td>${group.age }</td>
					</tr>
				</c:forEach>
			</c:otherwise>
		</c:choose>
	</table>
	varStatus :
	<br>
	<table border="1">
		<tr>
			<th>编号</th>
			<th>姓名</th>
			<th>年龄</th>
		</tr>
		<c:choose>
			<c:when test="${empty groups }">
				<tr>
					<td colspan="3">没有符合条件的数据</td>
				</tr>
			</c:when>
			<c:otherwise>
				<c:forEach items="${groups }" var="group" varStatus="vs">
					<c:choose>
						<%-- count  每个元素的下标 --%>
						<c:when test="${vs.count mod 2 == 0 }">
							<tr bgcolor="red">
						</c:when>
						<c:otherwise>
							<tr bgcolor="green">
						</c:otherwise>
					</c:choose>
					<td>${group.id }</td>
					<td>${group.name }</td>
					<td>${group.age }</td>
					</tr>
				</c:forEach>
			</c:otherwise>
		</c:choose>
	</table>

	<h4>map遍历</h4>
	<c:forEach items="${map }" var="entry">
			${entry.key } : ${entry.value }<br>
	</c:forEach>

	<h4>c:forTokens</h4>
	<!-- 以#分割一个字符串,得到字符串数组,遍历这个数组,把每位元素复制给v -->
	<c:forTokens items="${str }" delims="#" var="v">
		${v }<br>
	</c:forTokens>


	<h4>c:import</h4>
	<!-- 页面包含 -->
	<c:import url="http://127.0.0.1:8080/JSTL/index.jsp"></c:import>
	<c:import url="http://www.baidu.com"></c:import>


	<%-- 	<c:redirect url="/JSTL/index.jsp"  context="/"></c:redirect> --%>


</body>
</html>